package com.middlegroup.common.model;

import com.middlegroup.common.enums.ChannelCode;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 *
 * @author pc
 * @date 2019/1/8
 */
@Data
public class TransRequest implements Serializable {

    @NotNull(message = "商户订单号不能为空!")
    private String merchantBillNo;
    /**
     * 中台生成的唯一的订单号
     */
    private String billNo;
    @NotNull(message = "姓名不能为空!")
    private String name;
    @NotNull(message = "预留不能为空!")
    private String phone;
    @NotNull(message = "身份证号码不能为空!")
    private String idCard;
    @NotNull(message = "用户卡号不能为空!")
    private String cardNo;
    @NotNull(message = "交易金额不能为空!")
    private BigDecimal amount;

    private String subjectCode;

    //@NotNull(message = "通道码不能为空!")
    private ChannelCode channelCode;
    private String merchantCode;

    /**
     * 场景类型，针对协议支付与快捷支付需要校验码流程的
     * 1：获取校验码
     * 2：确认交易
     */
    private Integer senceType;

    /**
     * 服务类型
     */
    private String serviceType;

    /**
     * 协议号
     */
    private String protocolNo;
    /**
     * 步骤，发起第一步请求，主体端会返回下一步动作或者已完成的动作
     1：第一步请求
     2：确认验证码
     3：直接扣款（需客户端发起）
     4：直接扣款完成（主体端完成后返回结果）
     */
    private Integer step;

    /**
     * 短信验证码
     */
    private String smsCode;
}
